сделать базу даных по названию...
строка[1] = "пехотинец"
строка[2] = "паладин"
тип юнита[1] = пехотинец
тип юнита[2] = паладин
цыкл
если введенная строка == строка[А]
создать юнита тип юнита[А]
name_to_trigger(string name) {
for (integer index = 0; index < name_array_index; index++) {
if name_array[index] == name {
return trigger_array[index];
}
}
}
Затем регистрируем все триггеры через register_trigger.
А после этого думаем, реально ли у нас столько абилок, что простая последовательность if name == "my_ability" then RunTrigger(my_ability) хуже этого решения
-- String Utility API
---@param i integer
---@return real
function I2R(i) end
---@param r real
---@return integer
function R2I(r) end
---@param i integer
---@return string
function I2S(i) end
---@param r real
---@return string
function R2S(r) end
---@param r real
---@param width integer
---@param precision integer
---@return string
function R2SW(r, width, precision) end
---@param s string
---@return integer
function S2I(s) end
---@param s string
---@return real
function S2R(s) end
---@param h handle
---@return integer
function GetHandleId(h) end
---@param source string
---@param start integer
---@param ending integer
---@return string
function SubString(source, start, ending) end
---@param s string
---@return integer
function StringLength(s) end
---@param source string
---@param upper boolean
---@return string
function StringCase(source, upper) end
---@param s string
---@return integer
function StringHash(s) end
---@param source string
---@return string
function GetLocalizedString(source) end
---@param source string
---@return integer
function GetLocalizedHotkey(source) end
Eternal soul,
Способ что предложил я - вы формируете БД и далее циклом пробегаетесь по массиву unit_type_string[i] и сравниваете его с вашей строкой. Если сравнение прошло успешно то по индексу unit_type[i] находите нужного юнита. Конечно конвертировать было бы более проффесионально, но это способ тоже будет работать.
Короче порылся в ХГМ, потыкал, все испробывал, и сам нашел ответ, вот несколько моментов для того, чтобы заработал:
Требуется установленный Warcraft 3: The Frozen Throne последней версии 1.26a. Скачайте нормальный варкрафт 3, а то попадаются урезанные или нерабочие версии. Лучше оригинальную версии приобрести, и обновить. Хотя пиратки тоже неплохи. Вот использую сборкой от R.G. Mechanics
Путь к программе НЕ ДОЛЖЕН содержать русских символов
Совершайте установку в отдельную от Warcraft 3 папку
Рекомендуется приостановить антивирусные программы до установки, потом выполнить установку, затем добавить папку c JNGP в исключения, и потом только снова включить антивирусы. Эта программа вторгается в процесс worldedit.exe, поэтому может считаться вредоносной
Не трогайте файл worldedit121.exe, он должен быть и в папке игры и в папке JNGP
Сначала "Сохранить карту", только потом "Проверка карты", а ещё иногда бывает лучше сохранять пару раз
Выше, это стандартное описание для работы. Если не сработает, пробуем вот, что:
Выставляем оптимальные настройки к JNGP, указанные на скрине (см. ссылку) xgm.guru/forum/showthread.php?t=13118 Обычно, эти настройки должны быть изначально после установки JNGP (ну мало ли пригодятся)
Теперь суть моей проблемы (не знаю, что из этих ниже пунктов сработало, но сработало):
Я установил игру и JNGP на рабочий стол. Потому что на диске С, в папках типа Program Files.(x86) и др. блокирует браундмер. Обычно требует назойливо для работы права администратора, очень раздражает. Но сомневаюсь, что заработало из-за этого. Раньше не мешало нисколько.
Запустить JNGP в режим совместимости. Заходим в свойство exe-шника. Поставил семерку.
Если UMS изначально включен, то выключить его и включить (Enable UMS). Потом перезапустить WE. Скорее всего из-за него.
Из-за UMS также бывают ошибки: могут выскачить 2-3 окна : что отсутствует TriggerClearActions и layerAll. Когда пропускаешь эти окна, просто нажав на ок, затем появляется ошибка с памятью и уже потом закрывается редактор. Происходят такие ошибки, если пытаешься открыть обычным редактором карту, отредактированную в JNGP. Такая ошибка происходит, если некорректно настроен UMS (выкл. потом вкл.). Такая ошибка происходит, если открыть обычным редактором взломанную карту, которая наверняка сделана в UMS и использует необычный jass и прочие преимущества JNGP. Ошибки с UMS могут иногда происходить, поэтому скорее всего пункт 10 поможет
Если UMS перестает работать (некорректно работает), а 10 пункт не помогает. То есть плагин UMS по каким-то причинам не запускается, а JNGP стоит галочка напротив UMS (говорит, что включен). Короче узнать, что он запущен, можно при открытий редактора вместо стандартного окна выскакивает окно UMS. Если не выскакивает, надо попробовать завести снова работать. Плагин может по каким-то причинам сломаться (один раз баловался в настройках JNGP). Пробуйте потом удалить JNGP и потом заново переустановить. Или выкл. и вкл, UMS затем выйти из jngp, удалить и заново переустановить
Через MIX-архивы, или просто кидать файлы в корневую папку с нужными путями.
К примеру есть мод UNION OF HIGH ELVES (Demo)как они его создали?
Я уже забодался говорить, что это аддон, а не мод. Создавать его очень геморройно, если не знать на 5+ устройство варика. Нужно:
Уметь работать с MPQ;
Шарить в устройстве системы запуска варика, копать её блокнотом;
Хорошо представлять себе внутренности архивов варика.
На освоение всего этого добра у тебя уйдет годик, если ты сообразительный. Конечно, всем хочется создать свой варкрафт с Hearthstone и джайнами, но мой тебе дружеский совет - делай доп. кампании. Будут допки - можно будет в любой момент пойти дальше, по примеру Shadow King.
Если вообще заморачиваться не хочешь - нарисуй кучу картинок с путями в фотошопе и просто подгружай их. Для кампании в наше время вес особой роли не играет.
Самый простой способ и один из самых криво выглядящих - чтобы герой качал подставные способности, которые никак не связаны с реальными - с универсальным описанием вида "первая способность", "вторая способность", а реальные способности чтобы выдавались и прокачивались триггерно на основе прокачки подставных.
ClotPh,вот есть модель с анимациями и есть твоя модель. Копируешь геометрию своей модели и копируешь ее в модель с анимациями потом у модели с анимациями удаляешь родную геометрию и поставляешь на ее место свою в редакторе анимаций потом крепишь части модели к соответственным костям.
Не вспомнишь никакой модели с анимированной текстурой в игре, чтобы посмотреть?
Короче, спасибо denismilyaev1 за ссылку на статью, ведь там как раз была строчка, которую надеялся найти в модели.
Сохранил как mdl, открыл в блокноте, вставил TVertexAnimId 0, в материал и сохранил в mdlvis как mdx. P. S. Как-то странно, что текстура двигается по горизонтали, а не вертикали.
Georgy12, call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область)
call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область) вот так
либо
local fogmodifier loc = CreateFogModifierRect(whichPlayer, whichFogState, r, true, false)
call FogModifierStart(loc)
ты установил Player(3) значит это 4 игрок а ты в тест карту запускает 1 игрок пойми!!!
чтобы все игроки видел облость надо циклом от 0 до 11
Понял в чем был косяк, ни одна из функций модификации видимости не имела эффекта, потому что перед ней был следующий вызов модификации тумана с параментром true:
Только мемхак, если вас не устраивают баффы детектов (волшебный огонь, посох чужих глаз, порошок прозрения).
Стоит отметить видимость юнита и детекция - разные опции, инвизер может быть обнаружен но не видем в тумане войны.
Какой путь к текстуре в самой модели? В оригинальном Warcraft'е это "Textures\Meatwagon.blp".
Если у тебя путь "Textures\trupovozka_by_autorname.blp", то в Импорте так и пиши: "Textures\trupovozka_by_autorname.blp".
через obj не над там копируються вершины а то и несколько раз и слои слепляются в 1,3ds и через милкшарп,еси напрямую в мделвис то uv будет зекальна по y,а лутше перкинуть через макс(еси есть)
ну полигонам то укладывайся в 10к на супер хд моделей
материал ты не как не перенесешь только текстуру
материалы для вара создаются в warcraft model editor
Ась, что кого? для 126 отслеживание выделения в группе только на мемхаке, чистый 126 лесом, на рефордже через GetChild, вот ссылка, надо скопипастить на русском на Xgm
Но если принебречь этим множественным выбором и представить что выбор единичный
Тогда на гуи всё есть и получиться
C - Юнит выбран
У - Юнит такой-то, способность такая то есть, владелец выбранного=владелец выбирающего
Д -
set s = "" s = string
if p = GetLocalPlayer() then
set s = "Тут\\Типа\\Адрес\\Модели.mdx"
endif
call СоздатьСпецэффект(s,x,y) x,y - координаты, либо вместо них точка, либо виджет
а если по поводу вопроса
Но не понимаю, как именно применить тут эту систему
Система уже расписана, суть в том что у локального игрока создастся эффект с моделью, а у остальных с пустышкой и они ничего не увидят
set s = "" s = string пустышка
if p = GetLocalPlayer() then -- если локальный игрок тогда
set s = "Тут\\Типа\\Адрес\\Модели.mdx" -- модель уже не пустышка
алгоритм слишком сложной в нём только ты и можешь разобраться, но..
если бы у меня такое была, да и в принципе как я избавляюсь от бесконечных циклов, это просто ограничиваю его неким возможным числом и как только число переваливает, я вызываю дебаг, или же обрываю функцию не давая её дальше работать, ограничь работу каждого цикла например до 100 (очень сложно давать совет когда не особо понимаешь алгоритм)
Но у тебя тут либо бесконечный просто либо 1 вызывает другой до бесконечности
Если же первый оч просто отловить, то со вторым придётся попотеть и задебажить всё что движется после 100, пока на экран, в любом случае последнее что ты увидешь после зависания, это как числа перевалили за 100, я думаю они успеют покрыть экран, ну на крайняк расставь вот эти дебаги которые в прелоад пишут, у тебя не будетработать а у нас будет, ну я точно скину тебе лог
ScopteRectuS, Я решил проблему там баг, если указать регион как точку назначения портала, то с ним триггеры перестают работать. Я просто указал другой регион. biridius, Ну это альфа версия, за 5 мин сделал, знаю об утечках.
Я юзал морф, а не грейд. Грейд был в другой наработке, и там не было проблем с анимацией. В наработке с морфом нет никаких вейтов.
Всё остальное какая-то ерунда, какие переменные? Грейд делается и всё.
Отмена для меня преимущество такое себе
И тем не не менее, отменять грейд тебе нужно, потому преимущество вполне себе.
Я больше-то вот как раз вышеупомянутые баги имел в виду
Эффекты аур могут остаться на юните, с героями ещё хуже. Так-то всё написано тут, пункт 19.
Скорее всего при сохранении текстуры в .blp формате ты случайно зацепил кнопку "Инвертировать альфа канал." Попробуй в твоей текстуре нажать это и сохранить ее. Посмотрим на результаты.
Еще возможный вариант - не правильный способ фильтрования или как-то так.
xgm.guru/p/wc3/okno Вот ссылка на модели окон, можешь просто достать оттуда стекла. А вообще чтобы сделать полупрозрачное окно нужно сделать альфа-канал серым и дополнительно настроить модельку в вар3ме
Вроде как, движок варкрафта не поддерживает полупрозрачность. По крайней мере, все мои попытки импортировать полупрозрачную текстуру в модельку оканчивались замазанными частями текстуры.
В варе есть не мало полупрозрачных элементов, к примеру те же крылья Иллидана.
Прямо говоря, не сталкивался с подобным, но попробуй не с Рабочего стола проводить манипуляции, а из корня диска C:\
Также попробуй распаковать mix. Но раз карта защищённая, то спроси лучше quq_CCCP, он со многими видами защиты работал.
Вот, тут все что тебе нужно, в дальнейшем ищи статьи, если ничего не находишь, то задавай вопрос. LordDracula:
В карте есть эффект освещения, можно его юзать и прикреплять к примеру к костру. Выглядит очень атмосферно.
Да, я нашел эту статью уже и задействовал эффекты, находящиеся в ней(пост №5). Dragonear:
Если хотите, могу скинуть карту с различными моделями эффектов.
Proshel_Doty, о, это проблема с нормалями. Странно, что такое на хайве вообще пропустили.
Нужно материалы сделать односторонними, а потом через mdlvis обратить нормали у всех полигонов, которые стали прозрачными.
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
скорее всего ты при инициализации проверяешь статус слота игрока, а этого делать нини ))) ибо это частенько может приводить к десинку, вот эти игроки и получают его благополучно во время инициализации)))
Да чего вы чушь на уши льете человеку. Ты должен дать юниту способность-пустышку, допустим - веерный бросок, но все параметры, типо урона и радиуса действия сотри, напиши описание. Маны способность не будет стоить, но в описании ты укажешь, сколько золота стоит улучшение. Итак, структура триггера на словах.
Событие:
-Юнит приводит способность в действие
Условие:
-Тип юнита: пехотинец (поищи, найдешь).
Действия:
Если применяющая способность равна Бандит, то
-Боевая единица: удалить применяющий юнит
-Боевая единица: создать бандита (позиция применяющий юнит, владелец применяющий юнит, и т.п.)
-Игрок: вычесть столько то золота
Иначе ничего не делать
Если применяющая способность равна Рыцарь, то
Делать тоже самое, только создай рыцаря, вычитай другое кол-во золота.
Иначе ничего не делать
P.S: можно использовать переменную типа юнит, однако желательно локальную, если ты знаешь, что это. Хотя я не могу быть уверен, что переменная как-то сильно поможет, можно обойтись и без нее.
Кстати, увидел, что человек выше написал функцию заменить юнита на другого, не помню ее, но может она и есть, тогда вместо удаления и добавления нового юнита лучше воспользоваться заменой.
у меня не улучшение как таковое а "Улучшается ДО" , никогда с этими улучшениями дела не имел, а как у других? Продавать юнита и при продаже подменять, чтобы проапгрейдить, мне кажется эта вещь должна нормально работать в варе же, неужели все тдшки и всякие петры на другой системе сделаны?
По своей проблеме разобрался, в РО карта путей стоял пункт "Нет" у башни 1, именно это и вызывало фатал при отмене улучшения
багом разве что можно попробовать сместить иконки, при удалении других оно автоматом займёт места (такое происходит когда к примеру есть 2 иконки с координатами 0, 0)
на мемхаке можно сделать то что ты хочешь, но лично у меня такое только для способностей реализовано)
возможно на рефе есть для этого функции, они обычно с приставкой Blz
Можно, в казарму прописать все 4 вида скелетов для найма.
При старте карты триггерно блокировать всех скелетов, кроме первого стартового, для игрока или всех игроков.
Создать триггер, где юнит завершает исследование.
Туда прописать, что в зависимости от уровня исследования, блокировать предыдущего скелета для игрока, и разблокировать следующего.
Аналогично прописать условия на все вариации скелетов, и расписать на всех игроков.
Как то так, примерно). Само исследование в данном случае будет пустышкой, и будет нужно только для запуска триггера.
эта статья к тебе не относится
она совсем про другое
тебе не нужны ни буферы ни файлы
по поводу 1 и 2 пунктов
а ты попробуй
а потом напиши тут о том что получилось
Можно сделать импорт всего 2 раза.
Active\BTNGem.blp - активная иконка.
Inactive\BTNGem.blp - активная иконка для выключенного предмета, переименована из DISBTNGem.blp
ReplaceableTextures\CommandButtonsDisabled\DISBTNGem.blp - неактивная иконка.
Я думал сначала, что для выключенной иконки будет своя неактивная.
Была проблема с загрузкой на сайт, уже починили, можешь смело заливать.
Какой предел размера карты для публикации на этом сайте?
100 мегабайт у всего ресурса, но если надо больше и есть что показать, то можно попросить модераторов залить на сайт и + ссылки на облака никто не запрещал.
Вот есть ограничение на игру по сети (8м)
Это где такое? ограничение было только на гарене, и ото оно обходилось через спец патч, сейчас всё хостуется через ирину или последний патч рефорджа
Хотелось бы узнать что сколько кушает. Т.е. какую часть памяти примерно занимают триггеры (300+ штук), какую ландшафт (почти 8 тысяч декораций), юниты на карте, юниты в редакторе, спелы, переменные? На что мне сделать упор в плане оптимизации размера карты? Из моментов, к которым сам пришел это
1 -удаление юнитов с карты и добавление их уже в игре через триггеры,
2 -редактирование стандартных спелов взамен созданию новых на их основе
Можно открыть карту любой mpq программой, разумеется и посмотреть какой файл что кушает, в твоей случае после импорта на 2 месте будут гуи триггеры. Но можно вообще не заморачиваться по поводу размеров в 2020, а на сайте просто был глюк
VinerX, посмотри гуи функцию "пропустить остальные действия" по факту это слово "return" в коде, то есть после ретурна ты никак не поставишь set newUnit = null, и правильно это делать после set bj_lastReplacedUnit = newUnit, а возвращать не newUnit, а bj_lastReplacedUnit, вот код если непонятно
set bj_lastReplacedUnit = newUnit
set newUnit = null
set oldUnit = null
set indexItem = null
return bj_lastReplacedUnit
Вобщем озарение как всегда пришло внезапно - понял что GetSpellAbilityUnit срабатывает на дамми и записывает в массив его, а не цель щита. Просто передвинул махинации с дамми в конец функции Actions. Всё отменно работает. Всем спасибо все свободны
Это сжатый вариант, с минимальными данными, на синтаксис можете не смотреть.
Моя версия - хэндл в тестах идёт в виде 23763, так что пока думаю как это решить (математика!!!) Гы.
Решил проблему, добавив
set ch = ModuloInteger(ch,8189) Гы.
KiWave, а вот ии такая штука что хз что ему не хватает, бывает они ломаются и только добывают ресурсы. Тщательно проверь настройки всех зданий и доступны ли они ИИ по ресурсам и требованиям, просто раздай контроль над ИИ себе и сиди смотри за ним.
» WarCraft 3 / Нужны ли иконки приказа?
» WarCraft 3 / Тип переменной строка
» WarCraft 3 / Где скачать WE?
» WarCraft 3 / вопрос про GetAttackedUnitBJ
» WarCraft 3 / как сделать мод?
» WarCraft 3 / Анимированная текстура
» WarCraft 3 / Не раскрывается невидимость юнита
» WarCraft 3 / Вопрос по моделям .mdx
» WarCraft 3 / Лог вылета
» WarCraft 3 / Не работает триггер
» WarCraft 3 / Модель, прозрачные текстуры
» IrInA Host Bot / файл карты не найде?
» WarCraft 3 / Источник света
» WarCraft 3 / Спецэффект на анимацию
» WarCraft 3 / Просьба о помощи!
» WarCraft 3 / Выкидывает
» WarCraft 3 / Улучшение юнита
» WarCraft 3 / Путь к иконке
» WarCraft 3 / Вопрос по оптимизации карты (?)
» WarCraft 3 / ИИ не хочет работать